/**
 * 
 */
package com.google.code.jkippt.resource;

import java.util.Calendar;

import com.google.gson.annotations.SerializedName;

/**
 * Lists are used to organize and categorize clips. 
 * @author Federico De Faveri defaveri@gmail.com
 */
public class ClipList extends ApplicationResource {
	
	protected String title;
	protected String slug;
	@SerializedName("is_private")
	protected Boolean isPrivate;
	protected User user;
	protected String description;
	//TODO "collaborators": {"count": 0, "objects": []},
	protected Calendar created;
	protected Calendar updated;
	@SerializedName("rss_url")
	protected String rssUrl;
	
	protected ClipList(){}
	
	/**
	 * @param title
	 */
	public ClipList(String title) {
		this.title = title;
	}
	
	/**
	 * @param title
	 * @param description
	 */
	public ClipList(String title, String description) {
		this.title = title;
		this.description = description;
	}

	/**
	 * @return the title
	 */
	public String getTitle() {
		return title;
	}

	/**
	 * @return the description
	 */
	public String getDescription() {
		return description;
	}
	

	/**
	 * @param title the title to set
	 */
	public void setTitle(String title) {
		this.title = title;
	}

	/**
	 * @param description the description to set
	 */
	public void setDescription(String description) {
		this.description = description;
	}

	/**
	 * @return the user
	 */
	public User getUser() {
		return user;
	}

	/**
	 * @return the slug
	 */
	public String getSlug() {
		return slug;
	}

	/**
	 * @return the updated
	 */
	public Calendar getUpdated() {
		return updated;
	}

	/**
	 * @return the created
	 */
	public Calendar getCreated() {
		return created;
	}

	/**
	 * @return the rssUrl
	 */
	public String getRssUrl() {
		return rssUrl;
	}

	/**
	 * @return the isPrivate
	 */
	public boolean isPrivate() {
		return isPrivate;
	}

	/**
	 * {@inheritDoc}
	 */
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("List [id=");
		builder.append(id);
		builder.append(", resourceUri=");
		builder.append(resourceUri);
		builder.append(", appUrl=");
		builder.append(appUrl);
		builder.append(", title=");
		builder.append(title);
		builder.append(", description=");
		builder.append(description);
		builder.append(", user=");
		builder.append(user);
		builder.append(", slug=");
		builder.append(slug);
		builder.append(", updated=");
		builder.append(updated);
		builder.append(", created=");
		builder.append(created);
		builder.append(", rssUrl=");
		builder.append(rssUrl);
		builder.append(", isPrivate=");
		builder.append(isPrivate);
		builder.append("]");
		return builder.toString();
	}
}
